一、Windows系统
批处理脚本
cls&@echo off
title Windows查询当前主机的IP和MAC地址
cd /D "%~dp0"
wmic nicconfig where "IPEnabled=TRUE" get IPAddress,MACAddress
wmic nicconfig where "IPEnabled=TRUE" get IPAddress,MACAddress | clip
@pause
通用型命令
#查看所有适配器(网卡)信息
ipconfig /all
ipconfig命令官方文档
此命令将会列出所有
适配器
(即网卡
)的信息,用户需要清楚的知道自己当前所使用的是哪个适配器,才知道具体对应的IP地址和MAC地址,否则建议直接采用Windows的可视化操作去查看:
- 鼠标右键右下角
网络图标
选择打开“网络和Internet设置” - 选择网络和共享中心点击对应的
连接
活动网络 - 在弹出的
网络状态
窗口中点击详细信息即可 - 其中
IPv4 地址
即是IP地址、而物理地址
则是对应的MAC地址
其他可用命令
#查看本地主机域名对应的IP地址
nslookup ls
#查看所有网络协议的物理地址(即MAC地址)
getmac /v
nslookup命令官方文档
getmac命令官方文档
二、Unix系统
Unix系统包含
macOS
和Linux
两大操作系统;
其中Linux
又分为RedHat
和Debian
两大发行系列,具体参见我另一篇文章:Linux发行版概念!
批处理脚本
#!/bin/bash
# --------------------------------------------------
# Get Localhost IP Address and MAC Address
# --------------------------------------------------
# 由于命令中存在不同形式的转义字符"\",所以采用"$()"执行命令语句:
IP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
# 当变量"IP"值为空时赋值127.0.0.1
# 注意:-n判断为非空、-z则判断为空值
# ";"为了区分语句、不加";"只需将"then"放在下一行即可
if [ -z "${IP}" ] ; then
IP="172.0.0.1"
fi
# 末尾的"head -n 1"为获取第一行有效信息
MAC=`ip addr | grep link/ether | awk '{print $2}' | head -n 1`
echo -e "IPAddress \t MACAddress"
echo -e "${IP} \t ${MAC}"
常用查询命令
#查看所有适配器(网卡)信息
ifconfig -a
#新内核命令:替代了net-tools工具包(2011年起net-tools工具包不再维护),即iproute2工具包整合了arp/ifconfig/netstat和route等原net-tools工具包命令!
ip addr
#上条命令可缩写成:
ip a
#仅查看IPv4地址相关信息。
ip -4 addr
#查看指定网卡的MAC地址
cat /sys/class/net/eth0/address
注意:不要听信各种问答里面的ifconfig -a
查询出来的HWaddr
字段后面就是MAC地址的说法,不同发行系列的Linux系统、甚至相同发行但不同大版本的系统,都不一样,例如CentOS 7系统在ether
字段后面才是MAC地址,具体需要自己判断。